package com.ruoyi.analyse.mapper;

import java.util.List;
import com.ruoyi.analyse.domain.StudentProfile;
import org.apache.ibatis.annotations.Param;

/**
 * 学生学情画像Mapper接口
 *
 * @author ruoyi
 */
public interface StudentProfileMapper
{
    /**
     * 查询学生学情画像
     *
     * @param profileId 学生学情画像主键
     * @return 学生学情画像
     */
    public StudentProfile selectStudentProfileByProfileId(Long profileId);

    /**
     * 根据用户名查询学生学情画像
     *
     * @param userName 用户名
     * @return 学生学情画像
     */
    public StudentProfile selectStudentProfileByUserName(String userName);

    /**
     * 查询学生学情画像列表
     *
     * @param studentProfile 学生学情画像
     * @return 学生学情画像集合
     */
    public List<StudentProfile> selectStudentProfileList(StudentProfile studentProfile);

    /**
     * 新增学生学情画像
     *
     * @param studentProfile 学生学情画像
     * @return 结果
     */
    public int insertStudentProfile(StudentProfile studentProfile);

    /**
     * 修改学生学情画像
     *
     * @param studentProfile 学生学情画像
     * @return 结果
     */
    public int updateStudentProfile(StudentProfile studentProfile);

    /**
     * 删除学生学情画像
     *
     * @param profileId 学生学情画像主键
     * @return 结果
     */
    public int deleteStudentProfileByProfileId(Long profileId);

    /**
     * 批量删除学生学情画像
     *
     * @param profileIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStudentProfileByProfileIds(Long[] profileIds);

    /**
     * 获取提问最活跃的学生
     *
     * @param limit 限制数量
     * @return 活跃学生列表
     */
    public List<StudentProfile> selectTopActiveStudents(int limit);

    /**
     * 获取各复杂度问题的总数统计
     *
     * @return 复杂度统计
     */
    public StudentProfile selectComplexityStatistics();

    /**
     * 根据班级ID获取提问最活跃的学生
     *
     * @param limit 限制数量
     * @param classId 班级ID
     * @return 活跃学生列表
     */
    List<StudentProfile> selectTopActiveStudentsByClassId(@Param("limit") int limit,@Param("classId") Long classId);
}
